/*
 * Copyright Codeplay Software Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use these files except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// DO NOT MODIFY BY HAND
// This file was automatically generated by generate_matmul_tests.py.
// Results calculated using Tensorflow v1.12.0.

#include <gtest/gtest.h>
#include <vector>

#include "test/matmul/fixture.h"
#include "test/types/kernel_data_types.h"
#include "test/types/to_gtest_types.h"

using DataTypeList = sycldnn::types::KernelDataTypes;
using GTestTypeList = sycldnn::types::ToGTestTypes<DataTypeList>::type;

template <typename DataType>
using MatmulBatch1Beta1TrueFalse = MatmulFixture<DataType, true, false>;
TYPED_TEST_SUITE(MatmulBatch1Beta1TrueFalse, GTestTypeList);
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M14xK14xN14) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      163087., 164376., 165665., 166954., 168243., 169532., 170821., 172110.,
      173399., 174688., 175977., 177266., 178555., 179844., 164389., 165692.,
      166995., 168298., 169601., 170904., 172207., 173510., 174813., 176116.,
      177419., 178722., 180025., 181328., 165691., 167008., 168325., 169642.,
      170959., 172276., 173593., 174910., 176227., 177544., 178861., 180178.,
      181495., 182812., 166993., 168324., 169655., 170986., 172317., 173648.,
      174979., 176310., 177641., 178972., 180303., 181634., 182965., 184296.,
      168295., 169640., 170985., 172330., 173675., 175020., 176365., 177710.,
      179055., 180400., 181745., 183090., 184435., 185780., 169597., 170956.,
      172315., 173674., 175033., 176392., 177751., 179110., 180469., 181828.,
      183187., 184546., 185905., 187264., 170899., 172272., 173645., 175018.,
      176391., 177764., 179137., 180510., 181883., 183256., 184629., 186002.,
      187375., 188748., 172201., 173588., 174975., 176362., 177749., 179136.,
      180523., 181910., 183297., 184684., 186071., 187458., 188845., 190232.,
      173503., 174904., 176305., 177706., 179107., 180508., 181909., 183310.,
      184711., 186112., 187513., 188914., 190315., 191716., 174805., 176220.,
      177635., 179050., 180465., 181880., 183295., 184710., 186125., 187540.,
      188955., 190370., 191785., 193200., 176107., 177536., 178965., 180394.,
      181823., 183252., 184681., 186110., 187539., 188968., 190397., 191826.,
      193255., 194684., 177409., 178852., 180295., 181738., 183181., 184624.,
      186067., 187510., 188953., 190396., 191839., 193282., 194725., 196168.,
      178711., 180168., 181625., 183082., 184539., 185996., 187453., 188910.,
      190367., 191824., 193281., 194738., 196195., 197652., 180013., 181484.,
      182955., 184426., 185897., 187368., 188839., 190310., 191781., 193252.,
      194723., 196194., 197665., 199136.};
  const int batches = 1;
  const int m = 14;
  const int k = 14;
  const int n = 14;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M14xK14xN15) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      174644., 175933., 177222., 178511., 179800., 181089., 182378., 183667.,
      184956., 186245., 187534., 188823., 190112., 191401., 192690., 176038.,
      177341., 178644., 179947., 181250., 182553., 183856., 185159., 186462.,
      187765., 189068., 190371., 191674., 192977., 194280., 177432., 178749.,
      180066., 181383., 182700., 184017., 185334., 186651., 187968., 189285.,
      190602., 191919., 193236., 194553., 195870., 178826., 180157., 181488.,
      182819., 184150., 185481., 186812., 188143., 189474., 190805., 192136.,
      193467., 194798., 196129., 197460., 180220., 181565., 182910., 184255.,
      185600., 186945., 188290., 189635., 190980., 192325., 193670., 195015.,
      196360., 197705., 199050., 181614., 182973., 184332., 185691., 187050.,
      188409., 189768., 191127., 192486., 193845., 195204., 196563., 197922.,
      199281., 200640., 183008., 184381., 185754., 187127., 188500., 189873.,
      191246., 192619., 193992., 195365., 196738., 198111., 199484., 200857.,
      202230., 184402., 185789., 187176., 188563., 189950., 191337., 192724.,
      194111., 195498., 196885., 198272., 199659., 201046., 202433., 203820.,
      185796., 187197., 188598., 189999., 191400., 192801., 194202., 195603.,
      197004., 198405., 199806., 201207., 202608., 204009., 205410., 187190.,
      188605., 190020., 191435., 192850., 194265., 195680., 197095., 198510.,
      199925., 201340., 202755., 204170., 205585., 207000., 188584., 190013.,
      191442., 192871., 194300., 195729., 197158., 198587., 200016., 201445.,
      202874., 204303., 205732., 207161., 208590., 189978., 191421., 192864.,
      194307., 195750., 197193., 198636., 200079., 201522., 202965., 204408.,
      205851., 207294., 208737., 210180., 191372., 192829., 194286., 195743.,
      197200., 198657., 200114., 201571., 203028., 204485., 205942., 207399.,
      208856., 210313., 211770., 192766., 194237., 195708., 197179., 198650.,
      200121., 201592., 203063., 204534., 206005., 207476., 208947., 210418.,
      211889., 213360.};
  const int batches = 1;
  const int m = 14;
  const int k = 14;
  const int n = 15;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M14xK14xN16) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      186201., 187490., 188779., 190068., 191357., 192646., 193935., 195224.,
      196513., 197802., 199091., 200380., 201669., 202958., 204247., 205536.,
      187687., 188990., 190293., 191596., 192899., 194202., 195505., 196808.,
      198111., 199414., 200717., 202020., 203323., 204626., 205929., 207232.,
      189173., 190490., 191807., 193124., 194441., 195758., 197075., 198392.,
      199709., 201026., 202343., 203660., 204977., 206294., 207611., 208928.,
      190659., 191990., 193321., 194652., 195983., 197314., 198645., 199976.,
      201307., 202638., 203969., 205300., 206631., 207962., 209293., 210624.,
      192145., 193490., 194835., 196180., 197525., 198870., 200215., 201560.,
      202905., 204250., 205595., 206940., 208285., 209630., 210975., 212320.,
      193631., 194990., 196349., 197708., 199067., 200426., 201785., 203144.,
      204503., 205862., 207221., 208580., 209939., 211298., 212657., 214016.,
      195117., 196490., 197863., 199236., 200609., 201982., 203355., 204728.,
      206101., 207474., 208847., 210220., 211593., 212966., 214339., 215712.,
      196603., 197990., 199377., 200764., 202151., 203538., 204925., 206312.,
      207699., 209086., 210473., 211860., 213247., 214634., 216021., 217408.,
      198089., 199490., 200891., 202292., 203693., 205094., 206495., 207896.,
      209297., 210698., 212099., 213500., 214901., 216302., 217703., 219104.,
      199575., 200990., 202405., 203820., 205235., 206650., 208065., 209480.,
      210895., 212310., 213725., 215140., 216555., 217970., 219385., 220800.,
      201061., 202490., 203919., 205348., 206777., 208206., 209635., 211064.,
      212493., 213922., 215351., 216780., 218209., 219638., 221067., 222496.,
      202547., 203990., 205433., 206876., 208319., 209762., 211205., 212648.,
      214091., 215534., 216977., 218420., 219863., 221306., 222749., 224192.,
      204033., 205490., 206947., 208404., 209861., 211318., 212775., 214232.,
      215689., 217146., 218603., 220060., 221517., 222974., 224431., 225888.,
      205519., 206990., 208461., 209932., 211403., 212874., 214345., 215816.,
      217287., 218758., 220229., 221700., 223171., 224642., 226113., 227584.};
  const int batches = 1;
  const int m = 14;
  const int k = 14;
  const int n = 16;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M14xK15xN14) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      201896., 203382., 204868., 206354., 207840., 209326., 210812., 212298.,
      213784., 215270., 216756., 218242., 219728., 221214., 203395., 204896.,
      206397., 207898., 209399., 210900., 212401., 213902., 215403., 216904.,
      218405., 219906., 221407., 222908., 204894., 206410., 207926., 209442.,
      210958., 212474., 213990., 215506., 217022., 218538., 220054., 221570.,
      223086., 224602., 206393., 207924., 209455., 210986., 212517., 214048.,
      215579., 217110., 218641., 220172., 221703., 223234., 224765., 226296.,
      207892., 209438., 210984., 212530., 214076., 215622., 217168., 218714.,
      220260., 221806., 223352., 224898., 226444., 227990., 209391., 210952.,
      212513., 214074., 215635., 217196., 218757., 220318., 221879., 223440.,
      225001., 226562., 228123., 229684., 210890., 212466., 214042., 215618.,
      217194., 218770., 220346., 221922., 223498., 225074., 226650., 228226.,
      229802., 231378., 212389., 213980., 215571., 217162., 218753., 220344.,
      221935., 223526., 225117., 226708., 228299., 229890., 231481., 233072.,
      213888., 215494., 217100., 218706., 220312., 221918., 223524., 225130.,
      226736., 228342., 229948., 231554., 233160., 234766., 215387., 217008.,
      218629., 220250., 221871., 223492., 225113., 226734., 228355., 229976.,
      231597., 233218., 234839., 236460., 216886., 218522., 220158., 221794.,
      223430., 225066., 226702., 228338., 229974., 231610., 233246., 234882.,
      236518., 238154., 218385., 220036., 221687., 223338., 224989., 226640.,
      228291., 229942., 231593., 233244., 234895., 236546., 238197., 239848.,
      219884., 221550., 223216., 224882., 226548., 228214., 229880., 231546.,
      233212., 234878., 236544., 238210., 239876., 241542., 221383., 223064.,
      224745., 226426., 228107., 229788., 231469., 233150., 234831., 236512.,
      238193., 239874., 241555., 243236.};
  const int batches = 1;
  const int m = 14;
  const int k = 15;
  const int n = 14;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M14xK15xN15) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      216211., 217697., 219183., 220669., 222155., 223641., 225127., 226613.,
      228099., 229585., 231071., 232557., 234043., 235529., 237015., 217816.,
      219317., 220818., 222319., 223820., 225321., 226822., 228323., 229824.,
      231325., 232826., 234327., 235828., 237329., 238830., 219421., 220937.,
      222453., 223969., 225485., 227001., 228517., 230033., 231549., 233065.,
      234581., 236097., 237613., 239129., 240645., 221026., 222557., 224088.,
      225619., 227150., 228681., 230212., 231743., 233274., 234805., 236336.,
      237867., 239398., 240929., 242460., 222631., 224177., 225723., 227269.,
      228815., 230361., 231907., 233453., 234999., 236545., 238091., 239637.,
      241183., 242729., 244275., 224236., 225797., 227358., 228919., 230480.,
      232041., 233602., 235163., 236724., 238285., 239846., 241407., 242968.,
      244529., 246090., 225841., 227417., 228993., 230569., 232145., 233721.,
      235297., 236873., 238449., 240025., 241601., 243177., 244753., 246329.,
      247905., 227446., 229037., 230628., 232219., 233810., 235401., 236992.,
      238583., 240174., 241765., 243356., 244947., 246538., 248129., 249720.,
      229051., 230657., 232263., 233869., 235475., 237081., 238687., 240293.,
      241899., 243505., 245111., 246717., 248323., 249929., 251535., 230656.,
      232277., 233898., 235519., 237140., 238761., 240382., 242003., 243624.,
      245245., 246866., 248487., 250108., 251729., 253350., 232261., 233897.,
      235533., 237169., 238805., 240441., 242077., 243713., 245349., 246985.,
      248621., 250257., 251893., 253529., 255165., 233866., 235517., 237168.,
      238819., 240470., 242121., 243772., 245423., 247074., 248725., 250376.,
      252027., 253678., 255329., 256980., 235471., 237137., 238803., 240469.,
      242135., 243801., 245467., 247133., 248799., 250465., 252131., 253797.,
      255463., 257129., 258795., 237076., 238757., 240438., 242119., 243800.,
      245481., 247162., 248843., 250524., 252205., 253886., 255567., 257248.,
      258929., 260610.};
  const int batches = 1;
  const int m = 14;
  const int k = 15;
  const int n = 15;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M14xK15xN16) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      230526., 232012., 233498., 234984., 236470., 237956., 239442., 240928.,
      242414., 243900., 245386., 246872., 248358., 249844., 251330., 252816.,
      232237., 233738., 235239., 236740., 238241., 239742., 241243., 242744.,
      244245., 245746., 247247., 248748., 250249., 251750., 253251., 254752.,
      233948., 235464., 236980., 238496., 240012., 241528., 243044., 244560.,
      246076., 247592., 249108., 250624., 252140., 253656., 255172., 256688.,
      235659., 237190., 238721., 240252., 241783., 243314., 244845., 246376.,
      247907., 249438., 250969., 252500., 254031., 255562., 257093., 258624.,
      237370., 238916., 240462., 242008., 243554., 245100., 246646., 248192.,
      249738., 251284., 252830., 254376., 255922., 257468., 259014., 260560.,
      239081., 240642., 242203., 243764., 245325., 246886., 248447., 250008.,
      251569., 253130., 254691., 256252., 257813., 259374., 260935., 262496.,
      240792., 242368., 243944., 245520., 247096., 248672., 250248., 251824.,
      253400., 254976., 256552., 258128., 259704., 261280., 262856., 264432.,
      242503., 244094., 245685., 247276., 248867., 250458., 252049., 253640.,
      255231., 256822., 258413., 260004., 261595., 263186., 264777., 266368.,
      244214., 245820., 247426., 249032., 250638., 252244., 253850., 255456.,
      257062., 258668., 260274., 261880., 263486., 265092., 266698., 268304.,
      245925., 247546., 249167., 250788., 252409., 254030., 255651., 257272.,
      258893., 260514., 262135., 263756., 265377., 266998., 268619., 270240.,
      247636., 249272., 250908., 252544., 254180., 255816., 257452., 259088.,
      260724., 262360., 263996., 265632., 267268., 268904., 270540., 272176.,
      249347., 250998., 252649., 254300., 255951., 257602., 259253., 260904.,
      262555., 264206., 265857., 267508., 269159., 270810., 272461., 274112.,
      251058., 252724., 254390., 256056., 257722., 259388., 261054., 262720.,
      264386., 266052., 267718., 269384., 271050., 272716., 274382., 276048.,
      252769., 254450., 256131., 257812., 259493., 261174., 262855., 264536.,
      266217., 267898., 269579., 271260., 272941., 274622., 276303., 277984.};
  const int batches = 1;
  const int m = 14;
  const int k = 15;
  const int n = 16;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M14xK16xN14) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      246417., 248114., 249811., 251508., 253205., 254902., 256599., 258296.,
      259993., 261690., 263387., 265084., 266781., 268478., 248127., 249840.,
      251553., 253266., 254979., 256692., 258405., 260118., 261831., 263544.,
      265257., 266970., 268683., 270396., 249837., 251566., 253295., 255024.,
      256753., 258482., 260211., 261940., 263669., 265398., 267127., 268856.,
      270585., 272314., 251547., 253292., 255037., 256782., 258527., 260272.,
      262017., 263762., 265507., 267252., 268997., 270742., 272487., 274232.,
      253257., 255018., 256779., 258540., 260301., 262062., 263823., 265584.,
      267345., 269106., 270867., 272628., 274389., 276150., 254967., 256744.,
      258521., 260298., 262075., 263852., 265629., 267406., 269183., 270960.,
      272737., 274514., 276291., 278068., 256677., 258470., 260263., 262056.,
      263849., 265642., 267435., 269228., 271021., 272814., 274607., 276400.,
      278193., 279986., 258387., 260196., 262005., 263814., 265623., 267432.,
      269241., 271050., 272859., 274668., 276477., 278286., 280095., 281904.,
      260097., 261922., 263747., 265572., 267397., 269222., 271047., 272872.,
      274697., 276522., 278347., 280172., 281997., 283822., 261807., 263648.,
      265489., 267330., 269171., 271012., 272853., 274694., 276535., 278376.,
      280217., 282058., 283899., 285740., 263517., 265374., 267231., 269088.,
      270945., 272802., 274659., 276516., 278373., 280230., 282087., 283944.,
      285801., 287658., 265227., 267100., 268973., 270846., 272719., 274592.,
      276465., 278338., 280211., 282084., 283957., 285830., 287703., 289576.,
      266937., 268826., 270715., 272604., 274493., 276382., 278271., 280160.,
      282049., 283938., 285827., 287716., 289605., 291494., 268647., 270552.,
      272457., 274362., 276267., 278172., 280077., 281982., 283887., 285792.,
      287697., 289602., 291507., 293412.};
  const int batches = 1;
  const int m = 14;
  const int k = 16;
  const int n = 14;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M14xK16xN15) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      263897., 265594., 267291., 268988., 270685., 272382., 274079., 275776.,
      277473., 279170., 280867., 282564., 284261., 285958., 287655., 265728.,
      267441., 269154., 270867., 272580., 274293., 276006., 277719., 279432.,
      281145., 282858., 284571., 286284., 287997., 289710., 267559., 269288.,
      271017., 272746., 274475., 276204., 277933., 279662., 281391., 283120.,
      284849., 286578., 288307., 290036., 291765., 269390., 271135., 272880.,
      274625., 276370., 278115., 279860., 281605., 283350., 285095., 286840.,
      288585., 290330., 292075., 293820., 271221., 272982., 274743., 276504.,
      278265., 280026., 281787., 283548., 285309., 287070., 288831., 290592.,
      292353., 294114., 295875., 273052., 274829., 276606., 278383., 280160.,
      281937., 283714., 285491., 287268., 289045., 290822., 292599., 294376.,
      296153., 297930., 274883., 276676., 278469., 280262., 282055., 283848.,
      285641., 287434., 289227., 291020., 292813., 294606., 296399., 298192.,
      299985., 276714., 278523., 280332., 282141., 283950., 285759., 287568.,
      289377., 291186., 292995., 294804., 296613., 298422., 300231., 302040.,
      278545., 280370., 282195., 284020., 285845., 287670., 289495., 291320.,
      293145., 294970., 296795., 298620., 300445., 302270., 304095., 280376.,
      282217., 284058., 285899., 287740., 289581., 291422., 293263., 295104.,
      296945., 298786., 300627., 302468., 304309., 306150., 282207., 284064.,
      285921., 287778., 289635., 291492., 293349., 295206., 297063., 298920.,
      300777., 302634., 304491., 306348., 308205., 284038., 285911., 287784.,
      289657., 291530., 293403., 295276., 297149., 299022., 300895., 302768.,
      304641., 306514., 308387., 310260., 285869., 287758., 289647., 291536.,
      293425., 295314., 297203., 299092., 300981., 302870., 304759., 306648.,
      308537., 310426., 312315., 287700., 289605., 291510., 293415., 295320.,
      297225., 299130., 301035., 302940., 304845., 306750., 308655., 310560.,
      312465., 314370.};
  const int batches = 1;
  const int m = 14;
  const int k = 16;
  const int n = 15;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M14xK16xN16) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      281377., 283074., 284771., 286468., 288165., 289862., 291559., 293256.,
      294953., 296650., 298347., 300044., 301741., 303438., 305135., 306832.,
      283329., 285042., 286755., 288468., 290181., 291894., 293607., 295320.,
      297033., 298746., 300459., 302172., 303885., 305598., 307311., 309024.,
      285281., 287010., 288739., 290468., 292197., 293926., 295655., 297384.,
      299113., 300842., 302571., 304300., 306029., 307758., 309487., 311216.,
      287233., 288978., 290723., 292468., 294213., 295958., 297703., 299448.,
      301193., 302938., 304683., 306428., 308173., 309918., 311663., 313408.,
      289185., 290946., 292707., 294468., 296229., 297990., 299751., 301512.,
      303273., 305034., 306795., 308556., 310317., 312078., 313839., 315600.,
      291137., 292914., 294691., 296468., 298245., 300022., 301799., 303576.,
      305353., 307130., 308907., 310684., 312461., 314238., 316015., 317792.,
      293089., 294882., 296675., 298468., 300261., 302054., 303847., 305640.,
      307433., 309226., 311019., 312812., 314605., 316398., 318191., 319984.,
      295041., 296850., 298659., 300468., 302277., 304086., 305895., 307704.,
      309513., 311322., 313131., 314940., 316749., 318558., 320367., 322176.,
      296993., 298818., 300643., 302468., 304293., 306118., 307943., 309768.,
      311593., 313418., 315243., 317068., 318893., 320718., 322543., 324368.,
      298945., 300786., 302627., 304468., 306309., 308150., 309991., 311832.,
      313673., 315514., 317355., 319196., 321037., 322878., 324719., 326560.,
      300897., 302754., 304611., 306468., 308325., 310182., 312039., 313896.,
      315753., 317610., 319467., 321324., 323181., 325038., 326895., 328752.,
      302849., 304722., 306595., 308468., 310341., 312214., 314087., 315960.,
      317833., 319706., 321579., 323452., 325325., 327198., 329071., 330944.,
      304801., 306690., 308579., 310468., 312357., 314246., 316135., 318024.,
      319913., 321802., 323691., 325580., 327469., 329358., 331247., 333136.,
      306753., 308658., 310563., 312468., 314373., 316278., 318183., 320088.,
      321993., 323898., 325803., 327708., 329613., 331518., 333423., 335328.};
  const int batches = 1;
  const int m = 14;
  const int k = 16;
  const int n = 16;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M15xK14xN14) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      174644., 176024., 177404., 178784., 180164., 181544., 182924., 184304.,
      185684., 187064., 188444., 189824., 191204., 192584., 175946., 177340.,
      178734., 180128., 181522., 182916., 184310., 185704., 187098., 188492.,
      189886., 191280., 192674., 194068., 177248., 178656., 180064., 181472.,
      182880., 184288., 185696., 187104., 188512., 189920., 191328., 192736.,
      194144., 195552., 178550., 179972., 181394., 182816., 184238., 185660.,
      187082., 188504., 189926., 191348., 192770., 194192., 195614., 197036.,
      179852., 181288., 182724., 184160., 185596., 187032., 188468., 189904.,
      191340., 192776., 194212., 195648., 197084., 198520., 181154., 182604.,
      184054., 185504., 186954., 188404., 189854., 191304., 192754., 194204.,
      195654., 197104., 198554., 200004., 182456., 183920., 185384., 186848.,
      188312., 189776., 191240., 192704., 194168., 195632., 197096., 198560.,
      200024., 201488., 183758., 185236., 186714., 188192., 189670., 191148.,
      192626., 194104., 195582., 197060., 198538., 200016., 201494., 202972.,
      185060., 186552., 188044., 189536., 191028., 192520., 194012., 195504.,
      196996., 198488., 199980., 201472., 202964., 204456., 186362., 187868.,
      189374., 190880., 192386., 193892., 195398., 196904., 198410., 199916.,
      201422., 202928., 204434., 205940., 187664., 189184., 190704., 192224.,
      193744., 195264., 196784., 198304., 199824., 201344., 202864., 204384.,
      205904., 207424., 188966., 190500., 192034., 193568., 195102., 196636.,
      198170., 199704., 201238., 202772., 204306., 205840., 207374., 208908.,
      190268., 191816., 193364., 194912., 196460., 198008., 199556., 201104.,
      202652., 204200., 205748., 207296., 208844., 210392., 191570., 193132.,
      194694., 196256., 197818., 199380., 200942., 202504., 204066., 205628.,
      207190., 208752., 210314., 211876., 192872., 194448., 196024., 197600.,
      199176., 200752., 202328., 203904., 205480., 207056., 208632., 210208.,
      211784., 213360.};
  const int batches = 1;
  const int m = 15;
  const int k = 14;
  const int n = 14;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M15xK14xN15) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      187020., 188400., 189780., 191160., 192540., 193920., 195300., 196680.,
      198060., 199440., 200820., 202200., 203580., 204960., 206340., 188414.,
      189808., 191202., 192596., 193990., 195384., 196778., 198172., 199566.,
      200960., 202354., 203748., 205142., 206536., 207930., 189808., 191216.,
      192624., 194032., 195440., 196848., 198256., 199664., 201072., 202480.,
      203888., 205296., 206704., 208112., 209520., 191202., 192624., 194046.,
      195468., 196890., 198312., 199734., 201156., 202578., 204000., 205422.,
      206844., 208266., 209688., 211110., 192596., 194032., 195468., 196904.,
      198340., 199776., 201212., 202648., 204084., 205520., 206956., 208392.,
      209828., 211264., 212700., 193990., 195440., 196890., 198340., 199790.,
      201240., 202690., 204140., 205590., 207040., 208490., 209940., 211390.,
      212840., 214290., 195384., 196848., 198312., 199776., 201240., 202704.,
      204168., 205632., 207096., 208560., 210024., 211488., 212952., 214416.,
      215880., 196778., 198256., 199734., 201212., 202690., 204168., 205646.,
      207124., 208602., 210080., 211558., 213036., 214514., 215992., 217470.,
      198172., 199664., 201156., 202648., 204140., 205632., 207124., 208616.,
      210108., 211600., 213092., 214584., 216076., 217568., 219060., 199566.,
      201072., 202578., 204084., 205590., 207096., 208602., 210108., 211614.,
      213120., 214626., 216132., 217638., 219144., 220650., 200960., 202480.,
      204000., 205520., 207040., 208560., 210080., 211600., 213120., 214640.,
      216160., 217680., 219200., 220720., 222240., 202354., 203888., 205422.,
      206956., 208490., 210024., 211558., 213092., 214626., 216160., 217694.,
      219228., 220762., 222296., 223830., 203748., 205296., 206844., 208392.,
      209940., 211488., 213036., 214584., 216132., 217680., 219228., 220776.,
      222324., 223872., 225420., 205142., 206704., 208266., 209828., 211390.,
      212952., 214514., 216076., 217638., 219200., 220762., 222324., 223886.,
      225448., 227010., 206536., 208112., 209688., 211264., 212840., 214416.,
      215992., 217568., 219144., 220720., 222296., 223872., 225448., 227024.,
      228600.};
  const int batches = 1;
  const int m = 15;
  const int k = 14;
  const int n = 15;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M15xK14xN16) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      199396., 200776., 202156., 203536., 204916., 206296., 207676., 209056.,
      210436., 211816., 213196., 214576., 215956., 217336., 218716., 220096.,
      200882., 202276., 203670., 205064., 206458., 207852., 209246., 210640.,
      212034., 213428., 214822., 216216., 217610., 219004., 220398., 221792.,
      202368., 203776., 205184., 206592., 208000., 209408., 210816., 212224.,
      213632., 215040., 216448., 217856., 219264., 220672., 222080., 223488.,
      203854., 205276., 206698., 208120., 209542., 210964., 212386., 213808.,
      215230., 216652., 218074., 219496., 220918., 222340., 223762., 225184.,
      205340., 206776., 208212., 209648., 211084., 212520., 213956., 215392.,
      216828., 218264., 219700., 221136., 222572., 224008., 225444., 226880.,
      206826., 208276., 209726., 211176., 212626., 214076., 215526., 216976.,
      218426., 219876., 221326., 222776., 224226., 225676., 227126., 228576.,
      208312., 209776., 211240., 212704., 214168., 215632., 217096., 218560.,
      220024., 221488., 222952., 224416., 225880., 227344., 228808., 230272.,
      209798., 211276., 212754., 214232., 215710., 217188., 218666., 220144.,
      221622., 223100., 224578., 226056., 227534., 229012., 230490., 231968.,
      211284., 212776., 214268., 215760., 217252., 218744., 220236., 221728.,
      223220., 224712., 226204., 227696., 229188., 230680., 232172., 233664.,
      212770., 214276., 215782., 217288., 218794., 220300., 221806., 223312.,
      224818., 226324., 227830., 229336., 230842., 232348., 233854., 235360.,
      214256., 215776., 217296., 218816., 220336., 221856., 223376., 224896.,
      226416., 227936., 229456., 230976., 232496., 234016., 235536., 237056.,
      215742., 217276., 218810., 220344., 221878., 223412., 224946., 226480.,
      228014., 229548., 231082., 232616., 234150., 235684., 237218., 238752.,
      217228., 218776., 220324., 221872., 223420., 224968., 226516., 228064.,
      229612., 231160., 232708., 234256., 235804., 237352., 238900., 240448.,
      218714., 220276., 221838., 223400., 224962., 226524., 228086., 229648.,
      231210., 232772., 234334., 235896., 237458., 239020., 240582., 242144.,
      220200., 221776., 223352., 224928., 226504., 228080., 229656., 231232.,
      232808., 234384., 235960., 237536., 239112., 240688., 242264., 243840.};
  const int batches = 1;
  const int m = 15;
  const int k = 14;
  const int n = 16;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M15xK15xN14) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      216211., 217802., 219393., 220984., 222575., 224166., 225757., 227348.,
      228939., 230530., 232121., 233712., 235303., 236894., 217710., 219316.,
      220922., 222528., 224134., 225740., 227346., 228952., 230558., 232164.,
      233770., 235376., 236982., 238588., 219209., 220830., 222451., 224072.,
      225693., 227314., 228935., 230556., 232177., 233798., 235419., 237040.,
      238661., 240282., 220708., 222344., 223980., 225616., 227252., 228888.,
      230524., 232160., 233796., 235432., 237068., 238704., 240340., 241976.,
      222207., 223858., 225509., 227160., 228811., 230462., 232113., 233764.,
      235415., 237066., 238717., 240368., 242019., 243670., 223706., 225372.,
      227038., 228704., 230370., 232036., 233702., 235368., 237034., 238700.,
      240366., 242032., 243698., 245364., 225205., 226886., 228567., 230248.,
      231929., 233610., 235291., 236972., 238653., 240334., 242015., 243696.,
      245377., 247058., 226704., 228400., 230096., 231792., 233488., 235184.,
      236880., 238576., 240272., 241968., 243664., 245360., 247056., 248752.,
      228203., 229914., 231625., 233336., 235047., 236758., 238469., 240180.,
      241891., 243602., 245313., 247024., 248735., 250446., 229702., 231428.,
      233154., 234880., 236606., 238332., 240058., 241784., 243510., 245236.,
      246962., 248688., 250414., 252140., 231201., 232942., 234683., 236424.,
      238165., 239906., 241647., 243388., 245129., 246870., 248611., 250352.,
      252093., 253834., 232700., 234456., 236212., 237968., 239724., 241480.,
      243236., 244992., 246748., 248504., 250260., 252016., 253772., 255528.,
      234199., 235970., 237741., 239512., 241283., 243054., 244825., 246596.,
      248367., 250138., 251909., 253680., 255451., 257222., 235698., 237484.,
      239270., 241056., 242842., 244628., 246414., 248200., 249986., 251772.,
      253558., 255344., 257130., 258916., 237197., 238998., 240799., 242600.,
      244401., 246202., 248003., 249804., 251605., 253406., 255207., 257008.,
      258809., 260610.};
  const int batches = 1;
  const int m = 15;
  const int k = 15;
  const int n = 14;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M15xK15xN15) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      231541., 233132., 234723., 236314., 237905., 239496., 241087., 242678.,
      244269., 245860., 247451., 249042., 250633., 252224., 253815., 233146.,
      234752., 236358., 237964., 239570., 241176., 242782., 244388., 245994.,
      247600., 249206., 250812., 252418., 254024., 255630., 234751., 236372.,
      237993., 239614., 241235., 242856., 244477., 246098., 247719., 249340.,
      250961., 252582., 254203., 255824., 257445., 236356., 237992., 239628.,
      241264., 242900., 244536., 246172., 247808., 249444., 251080., 252716.,
      254352., 255988., 257624., 259260., 237961., 239612., 241263., 242914.,
      244565., 246216., 247867., 249518., 251169., 252820., 254471., 256122.,
      257773., 259424., 261075., 239566., 241232., 242898., 244564., 246230.,
      247896., 249562., 251228., 252894., 254560., 256226., 257892., 259558.,
      261224., 262890., 241171., 242852., 244533., 246214., 247895., 249576.,
      251257., 252938., 254619., 256300., 257981., 259662., 261343., 263024.,
      264705., 242776., 244472., 246168., 247864., 249560., 251256., 252952.,
      254648., 256344., 258040., 259736., 261432., 263128., 264824., 266520.,
      244381., 246092., 247803., 249514., 251225., 252936., 254647., 256358.,
      258069., 259780., 261491., 263202., 264913., 266624., 268335., 245986.,
      247712., 249438., 251164., 252890., 254616., 256342., 258068., 259794.,
      261520., 263246., 264972., 266698., 268424., 270150., 247591., 249332.,
      251073., 252814., 254555., 256296., 258037., 259778., 261519., 263260.,
      265001., 266742., 268483., 270224., 271965., 249196., 250952., 252708.,
      254464., 256220., 257976., 259732., 261488., 263244., 265000., 266756.,
      268512., 270268., 272024., 273780., 250801., 252572., 254343., 256114.,
      257885., 259656., 261427., 263198., 264969., 266740., 268511., 270282.,
      272053., 273824., 275595., 252406., 254192., 255978., 257764., 259550.,
      261336., 263122., 264908., 266694., 268480., 270266., 272052., 273838.,
      275624., 277410., 254011., 255812., 257613., 259414., 261215., 263016.,
      264817., 266618., 268419., 270220., 272021., 273822., 275623., 277424.,
      279225.};
  const int batches = 1;
  const int m = 15;
  const int k = 15;
  const int n = 15;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M15xK15xN16) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      246871., 248462., 250053., 251644., 253235., 254826., 256417., 258008.,
      259599., 261190., 262781., 264372., 265963., 267554., 269145., 270736.,
      248582., 250188., 251794., 253400., 255006., 256612., 258218., 259824.,
      261430., 263036., 264642., 266248., 267854., 269460., 271066., 272672.,
      250293., 251914., 253535., 255156., 256777., 258398., 260019., 261640.,
      263261., 264882., 266503., 268124., 269745., 271366., 272987., 274608.,
      252004., 253640., 255276., 256912., 258548., 260184., 261820., 263456.,
      265092., 266728., 268364., 270000., 271636., 273272., 274908., 276544.,
      253715., 255366., 257017., 258668., 260319., 261970., 263621., 265272.,
      266923., 268574., 270225., 271876., 273527., 275178., 276829., 278480.,
      255426., 257092., 258758., 260424., 262090., 263756., 265422., 267088.,
      268754., 270420., 272086., 273752., 275418., 277084., 278750., 280416.,
      257137., 258818., 260499., 262180., 263861., 265542., 267223., 268904.,
      270585., 272266., 273947., 275628., 277309., 278990., 280671., 282352.,
      258848., 260544., 262240., 263936., 265632., 267328., 269024., 270720.,
      272416., 274112., 275808., 277504., 279200., 280896., 282592., 284288.,
      260559., 262270., 263981., 265692., 267403., 269114., 270825., 272536.,
      274247., 275958., 277669., 279380., 281091., 282802., 284513., 286224.,
      262270., 263996., 265722., 267448., 269174., 270900., 272626., 274352.,
      276078., 277804., 279530., 281256., 282982., 284708., 286434., 288160.,
      263981., 265722., 267463., 269204., 270945., 272686., 274427., 276168.,
      277909., 279650., 281391., 283132., 284873., 286614., 288355., 290096.,
      265692., 267448., 269204., 270960., 272716., 274472., 276228., 277984.,
      279740., 281496., 283252., 285008., 286764., 288520., 290276., 292032.,
      267403., 269174., 270945., 272716., 274487., 276258., 278029., 279800.,
      281571., 283342., 285113., 286884., 288655., 290426., 292197., 293968.,
      269114., 270900., 272686., 274472., 276258., 278044., 279830., 281616.,
      283402., 285188., 286974., 288760., 290546., 292332., 294118., 295904.,
      270825., 272626., 274427., 276228., 278029., 279830., 281631., 283432.,
      285233., 287034., 288835., 290636., 292437., 294238., 296039., 297840.};
  const int batches = 1;
  const int m = 15;
  const int k = 15;
  const int n = 16;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M15xK16xN14) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      263897., 265714., 267531., 269348., 271165., 272982., 274799., 276616.,
      278433., 280250., 282067., 283884., 285701., 287518., 265607., 267440.,
      269273., 271106., 272939., 274772., 276605., 278438., 280271., 282104.,
      283937., 285770., 287603., 289436., 267317., 269166., 271015., 272864.,
      274713., 276562., 278411., 280260., 282109., 283958., 285807., 287656.,
      289505., 291354., 269027., 270892., 272757., 274622., 276487., 278352.,
      280217., 282082., 283947., 285812., 287677., 289542., 291407., 293272.,
      270737., 272618., 274499., 276380., 278261., 280142., 282023., 283904.,
      285785., 287666., 289547., 291428., 293309., 295190., 272447., 274344.,
      276241., 278138., 280035., 281932., 283829., 285726., 287623., 289520.,
      291417., 293314., 295211., 297108., 274157., 276070., 277983., 279896.,
      281809., 283722., 285635., 287548., 289461., 291374., 293287., 295200.,
      297113., 299026., 275867., 277796., 279725., 281654., 283583., 285512.,
      287441., 289370., 291299., 293228., 295157., 297086., 299015., 300944.,
      277577., 279522., 281467., 283412., 285357., 287302., 289247., 291192.,
      293137., 295082., 297027., 298972., 300917., 302862., 279287., 281248.,
      283209., 285170., 287131., 289092., 291053., 293014., 294975., 296936.,
      298897., 300858., 302819., 304780., 280997., 282974., 284951., 286928.,
      288905., 290882., 292859., 294836., 296813., 298790., 300767., 302744.,
      304721., 306698., 282707., 284700., 286693., 288686., 290679., 292672.,
      294665., 296658., 298651., 300644., 302637., 304630., 306623., 308616.,
      284417., 286426., 288435., 290444., 292453., 294462., 296471., 298480.,
      300489., 302498., 304507., 306516., 308525., 310534., 286127., 288152.,
      290177., 292202., 294227., 296252., 298277., 300302., 302327., 304352.,
      306377., 308402., 310427., 312452., 287837., 289878., 291919., 293960.,
      296001., 298042., 300083., 302124., 304165., 306206., 308247., 310288.,
      312329., 314370.};
  const int batches = 1;
  const int m = 15;
  const int k = 16;
  const int n = 14;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M15xK16xN15) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      282617., 284434., 286251., 288068., 289885., 291702., 293519., 295336.,
      297153., 298970., 300787., 302604., 304421., 306238., 308055., 284448.,
      286281., 288114., 289947., 291780., 293613., 295446., 297279., 299112.,
      300945., 302778., 304611., 306444., 308277., 310110., 286279., 288128.,
      289977., 291826., 293675., 295524., 297373., 299222., 301071., 302920.,
      304769., 306618., 308467., 310316., 312165., 288110., 289975., 291840.,
      293705., 295570., 297435., 299300., 301165., 303030., 304895., 306760.,
      308625., 310490., 312355., 314220., 289941., 291822., 293703., 295584.,
      297465., 299346., 301227., 303108., 304989., 306870., 308751., 310632.,
      312513., 314394., 316275., 291772., 293669., 295566., 297463., 299360.,
      301257., 303154., 305051., 306948., 308845., 310742., 312639., 314536.,
      316433., 318330., 293603., 295516., 297429., 299342., 301255., 303168.,
      305081., 306994., 308907., 310820., 312733., 314646., 316559., 318472.,
      320385., 295434., 297363., 299292., 301221., 303150., 305079., 307008.,
      308937., 310866., 312795., 314724., 316653., 318582., 320511., 322440.,
      297265., 299210., 301155., 303100., 305045., 306990., 308935., 310880.,
      312825., 314770., 316715., 318660., 320605., 322550., 324495., 299096.,
      301057., 303018., 304979., 306940., 308901., 310862., 312823., 314784.,
      316745., 318706., 320667., 322628., 324589., 326550., 300927., 302904.,
      304881., 306858., 308835., 310812., 312789., 314766., 316743., 318720.,
      320697., 322674., 324651., 326628., 328605., 302758., 304751., 306744.,
      308737., 310730., 312723., 314716., 316709., 318702., 320695., 322688.,
      324681., 326674., 328667., 330660., 304589., 306598., 308607., 310616.,
      312625., 314634., 316643., 318652., 320661., 322670., 324679., 326688.,
      328697., 330706., 332715., 306420., 308445., 310470., 312495., 314520.,
      316545., 318570., 320595., 322620., 324645., 326670., 328695., 330720.,
      332745., 334770., 308251., 310292., 312333., 314374., 316415., 318456.,
      320497., 322538., 324579., 326620., 328661., 330702., 332743., 334784.,
      336825.};
  const int batches = 1;
  const int m = 15;
  const int k = 16;
  const int n = 15;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M15xK16xN16) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301337., 303154., 304971., 306788., 308605., 310422., 312239., 314056.,
      315873., 317690., 319507., 321324., 323141., 324958., 326775., 328592.,
      303289., 305122., 306955., 308788., 310621., 312454., 314287., 316120.,
      317953., 319786., 321619., 323452., 325285., 327118., 328951., 330784.,
      305241., 307090., 308939., 310788., 312637., 314486., 316335., 318184.,
      320033., 321882., 323731., 325580., 327429., 329278., 331127., 332976.,
      307193., 309058., 310923., 312788., 314653., 316518., 318383., 320248.,
      322113., 323978., 325843., 327708., 329573., 331438., 333303., 335168.,
      309145., 311026., 312907., 314788., 316669., 318550., 320431., 322312.,
      324193., 326074., 327955., 329836., 331717., 333598., 335479., 337360.,
      311097., 312994., 314891., 316788., 318685., 320582., 322479., 324376.,
      326273., 328170., 330067., 331964., 333861., 335758., 337655., 339552.,
      313049., 314962., 316875., 318788., 320701., 322614., 324527., 326440.,
      328353., 330266., 332179., 334092., 336005., 337918., 339831., 341744.,
      315001., 316930., 318859., 320788., 322717., 324646., 326575., 328504.,
      330433., 332362., 334291., 336220., 338149., 340078., 342007., 343936.,
      316953., 318898., 320843., 322788., 324733., 326678., 328623., 330568.,
      332513., 334458., 336403., 338348., 340293., 342238., 344183., 346128.,
      318905., 320866., 322827., 324788., 326749., 328710., 330671., 332632.,
      334593., 336554., 338515., 340476., 342437., 344398., 346359., 348320.,
      320857., 322834., 324811., 326788., 328765., 330742., 332719., 334696.,
      336673., 338650., 340627., 342604., 344581., 346558., 348535., 350512.,
      322809., 324802., 326795., 328788., 330781., 332774., 334767., 336760.,
      338753., 340746., 342739., 344732., 346725., 348718., 350711., 352704.,
      324761., 326770., 328779., 330788., 332797., 334806., 336815., 338824.,
      340833., 342842., 344851., 346860., 348869., 350878., 352887., 354896.,
      326713., 328738., 330763., 332788., 334813., 336838., 338863., 340888.,
      342913., 344938., 346963., 348988., 351013., 353038., 355063., 357088.,
      328665., 330706., 332747., 334788., 336829., 338870., 340911., 342952.,
      344993., 347034., 349075., 351116., 353157., 355198., 357239., 359280.};
  const int batches = 1;
  const int m = 15;
  const int k = 16;
  const int n = 16;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M16xK14xN14) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      186201., 187672., 189143., 190614., 192085., 193556., 195027., 196498.,
      197969., 199440., 200911., 202382., 203853., 205324., 187503., 188988.,
      190473., 191958., 193443., 194928., 196413., 197898., 199383., 200868.,
      202353., 203838., 205323., 206808., 188805., 190304., 191803., 193302.,
      194801., 196300., 197799., 199298., 200797., 202296., 203795., 205294.,
      206793., 208292., 190107., 191620., 193133., 194646., 196159., 197672.,
      199185., 200698., 202211., 203724., 205237., 206750., 208263., 209776.,
      191409., 192936., 194463., 195990., 197517., 199044., 200571., 202098.,
      203625., 205152., 206679., 208206., 209733., 211260., 192711., 194252.,
      195793., 197334., 198875., 200416., 201957., 203498., 205039., 206580.,
      208121., 209662., 211203., 212744., 194013., 195568., 197123., 198678.,
      200233., 201788., 203343., 204898., 206453., 208008., 209563., 211118.,
      212673., 214228., 195315., 196884., 198453., 200022., 201591., 203160.,
      204729., 206298., 207867., 209436., 211005., 212574., 214143., 215712.,
      196617., 198200., 199783., 201366., 202949., 204532., 206115., 207698.,
      209281., 210864., 212447., 214030., 215613., 217196., 197919., 199516.,
      201113., 202710., 204307., 205904., 207501., 209098., 210695., 212292.,
      213889., 215486., 217083., 218680., 199221., 200832., 202443., 204054.,
      205665., 207276., 208887., 210498., 212109., 213720., 215331., 216942.,
      218553., 220164., 200523., 202148., 203773., 205398., 207023., 208648.,
      210273., 211898., 213523., 215148., 216773., 218398., 220023., 221648.,
      201825., 203464., 205103., 206742., 208381., 210020., 211659., 213298.,
      214937., 216576., 218215., 219854., 221493., 223132., 203127., 204780.,
      206433., 208086., 209739., 211392., 213045., 214698., 216351., 218004.,
      219657., 221310., 222963., 224616., 204429., 206096., 207763., 209430.,
      211097., 212764., 214431., 216098., 217765., 219432., 221099., 222766.,
      224433., 226100., 205731., 207412., 209093., 210774., 212455., 214136.,
      215817., 217498., 219179., 220860., 222541., 224222., 225903., 227584.};
  const int batches = 1;
  const int m = 16;
  const int k = 14;
  const int n = 14;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M16xK14xN15) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      199396., 200867., 202338., 203809., 205280., 206751., 208222., 209693.,
      211164., 212635., 214106., 215577., 217048., 218519., 219990., 200790.,
      202275., 203760., 205245., 206730., 208215., 209700., 211185., 212670.,
      214155., 215640., 217125., 218610., 220095., 221580., 202184., 203683.,
      205182., 206681., 208180., 209679., 211178., 212677., 214176., 215675.,
      217174., 218673., 220172., 221671., 223170., 203578., 205091., 206604.,
      208117., 209630., 211143., 212656., 214169., 215682., 217195., 218708.,
      220221., 221734., 223247., 224760., 204972., 206499., 208026., 209553.,
      211080., 212607., 214134., 215661., 217188., 218715., 220242., 221769.,
      223296., 224823., 226350., 206366., 207907., 209448., 210989., 212530.,
      214071., 215612., 217153., 218694., 220235., 221776., 223317., 224858.,
      226399., 227940., 207760., 209315., 210870., 212425., 213980., 215535.,
      217090., 218645., 220200., 221755., 223310., 224865., 226420., 227975.,
      229530., 209154., 210723., 212292., 213861., 215430., 216999., 218568.,
      220137., 221706., 223275., 224844., 226413., 227982., 229551., 231120.,
      210548., 212131., 213714., 215297., 216880., 218463., 220046., 221629.,
      223212., 224795., 226378., 227961., 229544., 231127., 232710., 211942.,
      213539., 215136., 216733., 218330., 219927., 221524., 223121., 224718.,
      226315., 227912., 229509., 231106., 232703., 234300., 213336., 214947.,
      216558., 218169., 219780., 221391., 223002., 224613., 226224., 227835.,
      229446., 231057., 232668., 234279., 235890., 214730., 216355., 217980.,
      219605., 221230., 222855., 224480., 226105., 227730., 229355., 230980.,
      232605., 234230., 235855., 237480., 216124., 217763., 219402., 221041.,
      222680., 224319., 225958., 227597., 229236., 230875., 232514., 234153.,
      235792., 237431., 239070., 217518., 219171., 220824., 222477., 224130.,
      225783., 227436., 229089., 230742., 232395., 234048., 235701., 237354.,
      239007., 240660., 218912., 220579., 222246., 223913., 225580., 227247.,
      228914., 230581., 232248., 233915., 235582., 237249., 238916., 240583.,
      242250., 220306., 221987., 223668., 225349., 227030., 228711., 230392.,
      232073., 233754., 235435., 237116., 238797., 240478., 242159., 243840.};
  const int batches = 1;
  const int m = 16;
  const int k = 14;
  const int n = 15;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M16xK14xN16) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      212591., 214062., 215533., 217004., 218475., 219946., 221417., 222888.,
      224359., 225830., 227301., 228772., 230243., 231714., 233185., 234656.,
      214077., 215562., 217047., 218532., 220017., 221502., 222987., 224472.,
      225957., 227442., 228927., 230412., 231897., 233382., 234867., 236352.,
      215563., 217062., 218561., 220060., 221559., 223058., 224557., 226056.,
      227555., 229054., 230553., 232052., 233551., 235050., 236549., 238048.,
      217049., 218562., 220075., 221588., 223101., 224614., 226127., 227640.,
      229153., 230666., 232179., 233692., 235205., 236718., 238231., 239744.,
      218535., 220062., 221589., 223116., 224643., 226170., 227697., 229224.,
      230751., 232278., 233805., 235332., 236859., 238386., 239913., 241440.,
      220021., 221562., 223103., 224644., 226185., 227726., 229267., 230808.,
      232349., 233890., 235431., 236972., 238513., 240054., 241595., 243136.,
      221507., 223062., 224617., 226172., 227727., 229282., 230837., 232392.,
      233947., 235502., 237057., 238612., 240167., 241722., 243277., 244832.,
      222993., 224562., 226131., 227700., 229269., 230838., 232407., 233976.,
      235545., 237114., 238683., 240252., 241821., 243390., 244959., 246528.,
      224479., 226062., 227645., 229228., 230811., 232394., 233977., 235560.,
      237143., 238726., 240309., 241892., 243475., 245058., 246641., 248224.,
      225965., 227562., 229159., 230756., 232353., 233950., 235547., 237144.,
      238741., 240338., 241935., 243532., 245129., 246726., 248323., 249920.,
      227451., 229062., 230673., 232284., 233895., 235506., 237117., 238728.,
      240339., 241950., 243561., 245172., 246783., 248394., 250005., 251616.,
      228937., 230562., 232187., 233812., 235437., 237062., 238687., 240312.,
      241937., 243562., 245187., 246812., 248437., 250062., 251687., 253312.,
      230423., 232062., 233701., 235340., 236979., 238618., 240257., 241896.,
      243535., 245174., 246813., 248452., 250091., 251730., 253369., 255008.,
      231909., 233562., 235215., 236868., 238521., 240174., 241827., 243480.,
      245133., 246786., 248439., 250092., 251745., 253398., 255051., 256704.,
      233395., 235062., 236729., 238396., 240063., 241730., 243397., 245064.,
      246731., 248398., 250065., 251732., 253399., 255066., 256733., 258400.,
      234881., 236562., 238243., 239924., 241605., 243286., 244967., 246648.,
      248329., 250010., 251691., 253372., 255053., 256734., 258415., 260096.};
  const int batches = 1;
  const int m = 16;
  const int k = 14;
  const int n = 16;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M16xK15xN14) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      230526., 232222., 233918., 235614., 237310., 239006., 240702., 242398.,
      244094., 245790., 247486., 249182., 250878., 252574., 232025., 233736.,
      235447., 237158., 238869., 240580., 242291., 244002., 245713., 247424.,
      249135., 250846., 252557., 254268., 233524., 235250., 236976., 238702.,
      240428., 242154., 243880., 245606., 247332., 249058., 250784., 252510.,
      254236., 255962., 235023., 236764., 238505., 240246., 241987., 243728.,
      245469., 247210., 248951., 250692., 252433., 254174., 255915., 257656.,
      236522., 238278., 240034., 241790., 243546., 245302., 247058., 248814.,
      250570., 252326., 254082., 255838., 257594., 259350., 238021., 239792.,
      241563., 243334., 245105., 246876., 248647., 250418., 252189., 253960.,
      255731., 257502., 259273., 261044., 239520., 241306., 243092., 244878.,
      246664., 248450., 250236., 252022., 253808., 255594., 257380., 259166.,
      260952., 262738., 241019., 242820., 244621., 246422., 248223., 250024.,
      251825., 253626., 255427., 257228., 259029., 260830., 262631., 264432.,
      242518., 244334., 246150., 247966., 249782., 251598., 253414., 255230.,
      257046., 258862., 260678., 262494., 264310., 266126., 244017., 245848.,
      247679., 249510., 251341., 253172., 255003., 256834., 258665., 260496.,
      262327., 264158., 265989., 267820., 245516., 247362., 249208., 251054.,
      252900., 254746., 256592., 258438., 260284., 262130., 263976., 265822.,
      267668., 269514., 247015., 248876., 250737., 252598., 254459., 256320.,
      258181., 260042., 261903., 263764., 265625., 267486., 269347., 271208.,
      248514., 250390., 252266., 254142., 256018., 257894., 259770., 261646.,
      263522., 265398., 267274., 269150., 271026., 272902., 250013., 251904.,
      253795., 255686., 257577., 259468., 261359., 263250., 265141., 267032.,
      268923., 270814., 272705., 274596., 251512., 253418., 255324., 257230.,
      259136., 261042., 262948., 264854., 266760., 268666., 270572., 272478.,
      274384., 276290., 253011., 254932., 256853., 258774., 260695., 262616.,
      264537., 266458., 268379., 270300., 272221., 274142., 276063., 277984.};
  const int batches = 1;
  const int m = 16;
  const int k = 15;
  const int n = 14;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M16xK15xN15) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      246871., 248567., 250263., 251959., 253655., 255351., 257047., 258743.,
      260439., 262135., 263831., 265527., 267223., 268919., 270615., 248476.,
      250187., 251898., 253609., 255320., 257031., 258742., 260453., 262164.,
      263875., 265586., 267297., 269008., 270719., 272430., 250081., 251807.,
      253533., 255259., 256985., 258711., 260437., 262163., 263889., 265615.,
      267341., 269067., 270793., 272519., 274245., 251686., 253427., 255168.,
      256909., 258650., 260391., 262132., 263873., 265614., 267355., 269096.,
      270837., 272578., 274319., 276060., 253291., 255047., 256803., 258559.,
      260315., 262071., 263827., 265583., 267339., 269095., 270851., 272607.,
      274363., 276119., 277875., 254896., 256667., 258438., 260209., 261980.,
      263751., 265522., 267293., 269064., 270835., 272606., 274377., 276148.,
      277919., 279690., 256501., 258287., 260073., 261859., 263645., 265431.,
      267217., 269003., 270789., 272575., 274361., 276147., 277933., 279719.,
      281505., 258106., 259907., 261708., 263509., 265310., 267111., 268912.,
      270713., 272514., 274315., 276116., 277917., 279718., 281519., 283320.,
      259711., 261527., 263343., 265159., 266975., 268791., 270607., 272423.,
      274239., 276055., 277871., 279687., 281503., 283319., 285135., 261316.,
      263147., 264978., 266809., 268640., 270471., 272302., 274133., 275964.,
      277795., 279626., 281457., 283288., 285119., 286950., 262921., 264767.,
      266613., 268459., 270305., 272151., 273997., 275843., 277689., 279535.,
      281381., 283227., 285073., 286919., 288765., 264526., 266387., 268248.,
      270109., 271970., 273831., 275692., 277553., 279414., 281275., 283136.,
      284997., 286858., 288719., 290580., 266131., 268007., 269883., 271759.,
      273635., 275511., 277387., 279263., 281139., 283015., 284891., 286767.,
      288643., 290519., 292395., 267736., 269627., 271518., 273409., 275300.,
      277191., 279082., 280973., 282864., 284755., 286646., 288537., 290428.,
      292319., 294210., 269341., 271247., 273153., 275059., 276965., 278871.,
      280777., 282683., 284589., 286495., 288401., 290307., 292213., 294119.,
      296025., 270946., 272867., 274788., 276709., 278630., 280551., 282472.,
      284393., 286314., 288235., 290156., 292077., 293998., 295919., 297840.};
  const int batches = 1;
  const int m = 16;
  const int k = 15;
  const int n = 15;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M16xK15xN16) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      263216., 264912., 266608., 268304., 270000., 271696., 273392., 275088.,
      276784., 278480., 280176., 281872., 283568., 285264., 286960., 288656.,
      264927., 266638., 268349., 270060., 271771., 273482., 275193., 276904.,
      278615., 280326., 282037., 283748., 285459., 287170., 288881., 290592.,
      266638., 268364., 270090., 271816., 273542., 275268., 276994., 278720.,
      280446., 282172., 283898., 285624., 287350., 289076., 290802., 292528.,
      268349., 270090., 271831., 273572., 275313., 277054., 278795., 280536.,
      282277., 284018., 285759., 287500., 289241., 290982., 292723., 294464.,
      270060., 271816., 273572., 275328., 277084., 278840., 280596., 282352.,
      284108., 285864., 287620., 289376., 291132., 292888., 294644., 296400.,
      271771., 273542., 275313., 277084., 278855., 280626., 282397., 284168.,
      285939., 287710., 289481., 291252., 293023., 294794., 296565., 298336.,
      273482., 275268., 277054., 278840., 280626., 282412., 284198., 285984.,
      287770., 289556., 291342., 293128., 294914., 296700., 298486., 300272.,
      275193., 276994., 278795., 280596., 282397., 284198., 285999., 287800.,
      289601., 291402., 293203., 295004., 296805., 298606., 300407., 302208.,
      276904., 278720., 280536., 282352., 284168., 285984., 287800., 289616.,
      291432., 293248., 295064., 296880., 298696., 300512., 302328., 304144.,
      278615., 280446., 282277., 284108., 285939., 287770., 289601., 291432.,
      293263., 295094., 296925., 298756., 300587., 302418., 304249., 306080.,
      280326., 282172., 284018., 285864., 287710., 289556., 291402., 293248.,
      295094., 296940., 298786., 300632., 302478., 304324., 306170., 308016.,
      282037., 283898., 285759., 287620., 289481., 291342., 293203., 295064.,
      296925., 298786., 300647., 302508., 304369., 306230., 308091., 309952.,
      283748., 285624., 287500., 289376., 291252., 293128., 295004., 296880.,
      298756., 300632., 302508., 304384., 306260., 308136., 310012., 311888.,
      285459., 287350., 289241., 291132., 293023., 294914., 296805., 298696.,
      300587., 302478., 304369., 306260., 308151., 310042., 311933., 313824.,
      287170., 289076., 290982., 292888., 294794., 296700., 298606., 300512.,
      302418., 304324., 306230., 308136., 310042., 311948., 313854., 315760.,
      288881., 290802., 292723., 294644., 296565., 298486., 300407., 302328.,
      304249., 306170., 308091., 310012., 311933., 313854., 315775., 317696.};
  const int batches = 1;
  const int m = 16;
  const int k = 15;
  const int n = 16;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M16xK16xN14) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      281377., 283314., 285251., 287188., 289125., 291062., 292999., 294936.,
      296873., 298810., 300747., 302684., 304621., 306558., 283087., 285040.,
      286993., 288946., 290899., 292852., 294805., 296758., 298711., 300664.,
      302617., 304570., 306523., 308476., 284797., 286766., 288735., 290704.,
      292673., 294642., 296611., 298580., 300549., 302518., 304487., 306456.,
      308425., 310394., 286507., 288492., 290477., 292462., 294447., 296432.,
      298417., 300402., 302387., 304372., 306357., 308342., 310327., 312312.,
      288217., 290218., 292219., 294220., 296221., 298222., 300223., 302224.,
      304225., 306226., 308227., 310228., 312229., 314230., 289927., 291944.,
      293961., 295978., 297995., 300012., 302029., 304046., 306063., 308080.,
      310097., 312114., 314131., 316148., 291637., 293670., 295703., 297736.,
      299769., 301802., 303835., 305868., 307901., 309934., 311967., 314000.,
      316033., 318066., 293347., 295396., 297445., 299494., 301543., 303592.,
      305641., 307690., 309739., 311788., 313837., 315886., 317935., 319984.,
      295057., 297122., 299187., 301252., 303317., 305382., 307447., 309512.,
      311577., 313642., 315707., 317772., 319837., 321902., 296767., 298848.,
      300929., 303010., 305091., 307172., 309253., 311334., 313415., 315496.,
      317577., 319658., 321739., 323820., 298477., 300574., 302671., 304768.,
      306865., 308962., 311059., 313156., 315253., 317350., 319447., 321544.,
      323641., 325738., 300187., 302300., 304413., 306526., 308639., 310752.,
      312865., 314978., 317091., 319204., 321317., 323430., 325543., 327656.,
      301897., 304026., 306155., 308284., 310413., 312542., 314671., 316800.,
      318929., 321058., 323187., 325316., 327445., 329574., 303607., 305752.,
      307897., 310042., 312187., 314332., 316477., 318622., 320767., 322912.,
      325057., 327202., 329347., 331492., 305317., 307478., 309639., 311800.,
      313961., 316122., 318283., 320444., 322605., 324766., 326927., 329088.,
      331249., 333410., 307027., 309204., 311381., 313558., 315735., 317912.,
      320089., 322266., 324443., 326620., 328797., 330974., 333151., 335328.};
  const int batches = 1;
  const int m = 16;
  const int k = 16;
  const int n = 14;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M16xK16xN15) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301337., 303274., 305211., 307148., 309085., 311022., 312959., 314896.,
      316833., 318770., 320707., 322644., 324581., 326518., 328455., 303168.,
      305121., 307074., 309027., 310980., 312933., 314886., 316839., 318792.,
      320745., 322698., 324651., 326604., 328557., 330510., 304999., 306968.,
      308937., 310906., 312875., 314844., 316813., 318782., 320751., 322720.,
      324689., 326658., 328627., 330596., 332565., 306830., 308815., 310800.,
      312785., 314770., 316755., 318740., 320725., 322710., 324695., 326680.,
      328665., 330650., 332635., 334620., 308661., 310662., 312663., 314664.,
      316665., 318666., 320667., 322668., 324669., 326670., 328671., 330672.,
      332673., 334674., 336675., 310492., 312509., 314526., 316543., 318560.,
      320577., 322594., 324611., 326628., 328645., 330662., 332679., 334696.,
      336713., 338730., 312323., 314356., 316389., 318422., 320455., 322488.,
      324521., 326554., 328587., 330620., 332653., 334686., 336719., 338752.,
      340785., 314154., 316203., 318252., 320301., 322350., 324399., 326448.,
      328497., 330546., 332595., 334644., 336693., 338742., 340791., 342840.,
      315985., 318050., 320115., 322180., 324245., 326310., 328375., 330440.,
      332505., 334570., 336635., 338700., 340765., 342830., 344895., 317816.,
      319897., 321978., 324059., 326140., 328221., 330302., 332383., 334464.,
      336545., 338626., 340707., 342788., 344869., 346950., 319647., 321744.,
      323841., 325938., 328035., 330132., 332229., 334326., 336423., 338520.,
      340617., 342714., 344811., 346908., 349005., 321478., 323591., 325704.,
      327817., 329930., 332043., 334156., 336269., 338382., 340495., 342608.,
      344721., 346834., 348947., 351060., 323309., 325438., 327567., 329696.,
      331825., 333954., 336083., 338212., 340341., 342470., 344599., 346728.,
      348857., 350986., 353115., 325140., 327285., 329430., 331575., 333720.,
      335865., 338010., 340155., 342300., 344445., 346590., 348735., 350880.,
      353025., 355170., 326971., 329132., 331293., 333454., 335615., 337776.,
      339937., 342098., 344259., 346420., 348581., 350742., 352903., 355064.,
      357225., 328802., 330979., 333156., 335333., 337510., 339687., 341864.,
      344041., 346218., 348395., 350572., 352749., 354926., 357103., 359280.};
  const int batches = 1;
  const int m = 16;
  const int k = 16;
  const int n = 15;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}
TYPED_TEST(MatmulBatch1Beta1TrueFalse, M16xK16xN16) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      321297., 323234., 325171., 327108., 329045., 330982., 332919., 334856.,
      336793., 338730., 340667., 342604., 344541., 346478., 348415., 350352.,
      323249., 325202., 327155., 329108., 331061., 333014., 334967., 336920.,
      338873., 340826., 342779., 344732., 346685., 348638., 350591., 352544.,
      325201., 327170., 329139., 331108., 333077., 335046., 337015., 338984.,
      340953., 342922., 344891., 346860., 348829., 350798., 352767., 354736.,
      327153., 329138., 331123., 333108., 335093., 337078., 339063., 341048.,
      343033., 345018., 347003., 348988., 350973., 352958., 354943., 356928.,
      329105., 331106., 333107., 335108., 337109., 339110., 341111., 343112.,
      345113., 347114., 349115., 351116., 353117., 355118., 357119., 359120.,
      331057., 333074., 335091., 337108., 339125., 341142., 343159., 345176.,
      347193., 349210., 351227., 353244., 355261., 357278., 359295., 361312.,
      333009., 335042., 337075., 339108., 341141., 343174., 345207., 347240.,
      349273., 351306., 353339., 355372., 357405., 359438., 361471., 363504.,
      334961., 337010., 339059., 341108., 343157., 345206., 347255., 349304.,
      351353., 353402., 355451., 357500., 359549., 361598., 363647., 365696.,
      336913., 338978., 341043., 343108., 345173., 347238., 349303., 351368.,
      353433., 355498., 357563., 359628., 361693., 363758., 365823., 367888.,
      338865., 340946., 343027., 345108., 347189., 349270., 351351., 353432.,
      355513., 357594., 359675., 361756., 363837., 365918., 367999., 370080.,
      340817., 342914., 345011., 347108., 349205., 351302., 353399., 355496.,
      357593., 359690., 361787., 363884., 365981., 368078., 370175., 372272.,
      342769., 344882., 346995., 349108., 351221., 353334., 355447., 357560.,
      359673., 361786., 363899., 366012., 368125., 370238., 372351., 374464.,
      344721., 346850., 348979., 351108., 353237., 355366., 357495., 359624.,
      361753., 363882., 366011., 368140., 370269., 372398., 374527., 376656.,
      346673., 348818., 350963., 353108., 355253., 357398., 359543., 361688.,
      363833., 365978., 368123., 370268., 372413., 374558., 376703., 378848.,
      348625., 350786., 352947., 355108., 357269., 359430., 361591., 363752.,
      365913., 368074., 370235., 372396., 374557., 376718., 378879., 381040.,
      350577., 352754., 354931., 357108., 359285., 361462., 363639., 365816.,
      367993., 370170., 372347., 374524., 376701., 378878., 381055., 383232.};
  const int batches = 1;
  const int m = 16;
  const int k = 16;
  const int n = 16;
  const auto beta = static_cast<DataType>(1);
  const DataType max_input_val = 2048.0;
  this->run(exp_out, batches, m, k, n, beta, 0, 0, 0, max_input_val);
}